package com.ruoyi.system.utils;

import com.github.pagehelper.PageInfo;
import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.page.TableSupport;
import io.swagger.v3.oas.models.security.SecurityScheme;

import java.util.List;

/**
 * @Author lz
 * @Version 1.0
 * @Company 滁州学院-计算机与信息工程学院
 * @ClassName PageByList
 * @Description TODO
 * @Date 2022/10/01 15:38
 */
public class PageByList {


    public static TableDataInfo myPageList(List<?> list) {
        PageDomain pageDomain = TableSupport.buildPageRequest();
        Integer pageNum = pageDomain.getPageNum();
        Integer pageSize = pageDomain.getPageSize();
        TableDataInfo tableDataInfo = new TableDataInfo();
        tableDataInfo.setCode(200);
        tableDataInfo.setRows(startPage(list, pageNum, pageSize));
        tableDataInfo.setTotal(new PageInfo(list).getTotal());
        return tableDataInfo;
    }


    public static List<?> startPage(List<?> list, Integer pageNum, Integer pageSize) {
        if(list ==null){
            return null;
        }
        if(list.size()==0){
            return null;
        }
        // 总记录数
        Integer count = list.size();
        // 页数
        Integer pageCount =0;
        if(count % pageSize ==0){
            pageCount = count / pageSize;
        }else{
            pageCount = count / pageSize +1;
        }
        // 开始索引
        int fromIndex =0;
        //结束索引
        int toIndex =0;
        if(pageNum != pageCount){
            fromIndex =(pageNum -1)* pageSize;
            toIndex = fromIndex + pageSize;
        }else{
            fromIndex =(pageNum -1)* pageSize;
            toIndex = count;
        }
        return list.subList(fromIndex,toIndex);
    }
}
